"""
1957. 删除字符使字符串变好
简单
相关标签
premium lock icon
相关企业
提示
一个字符串如果没有 三个连续 相同字符，那么它就是一个 好字符串 。

给你一个字符串 s ，请你从 s 删除 最少 的字符，使它变成一个 好字符串 。

请你返回删除后的字符串。题目数据保证答案总是 唯一的 。



示例 1：

输入：s = "leeetcode"
输出："leetcode"
解释：
从第一组 'e' 里面删除一个 'e' ，得到 "leetcode" 。
没有连续三个相同字符，所以返回 "leetcode" 。
示例 2：

输入：s = "aaabaaaa"
输出："aabaa"
解释：
从第一组 'a' 里面删除一个 'a' ，得到 "aabaaaa" 。
从第二组 'a' 里面删除两个 'a' ，得到 "aabaa" 。
没有连续三个相同字符，所以返回 "aabaa" 。
示例 3：

输入：s = "aab"
输出："aab"
解释：没有连续三个相同字符，所以返回 "aab" 。


提示：

1 <= s.length <= 105
s 只包含小写英文字母。
"""


class Solution:
    def makeFancyString(self, s: str) -> str:
        times = 1
        c = s[0]
        res = [c]  # 初始化结果列表

        for i in range(1, len(s)):
            if s[i] == c:
                if times < 2:
                    res.append(s[i])
                    times += 1
            else:
                res.append(s[i])
                times = 1
                c = s[i]
        return ''.join(res)
    def makeFancyString_time_out(self, s: str) -> str:
        times = 1
        c = s[0]
        ar = []
        for i in range(1, len(s)):
            if s[i] == c:
                if times >= 2:
                    ar.append(i)
                else:
                    times += 1
            else:
                times = 1
                c = s[i]
        res = ""
        for i in range(len(s)):
            if i not in ar:
                res += s[i]
        return res

if __name__ == '__main__':
    s = "leeetcode"
    print(Solution().makeFancyString(s))
    print(Solution().makeFancyString("aaabaaaa"))
    print(Solution().makeFancyString("aab"))